package com.example.administrator.newjiajiesong.main.activity.mvp.contract;


import com.example.administrator.newjiajiesong.base.BaseTreeView;
import com.example.administrator.newjiajiesong.main.my.entity.TreeUserEntity;
import com.example.administrator.newjiajiesong.network.ApiCallBack;

/**
 * LoginContract
 * (๑• . •๑)
 * 类描述:
 * Created by LeiXiaoXing on 2017/4/19 15:53
 */

public class LoginContract {
    public interface View extends BaseTreeView {

        /**
         * 获取手机号
         *
         * @return 手机号
         */
        String getMobile();

        /**
         * 设置手机号码
         *
         * @param mobile 手机号
         */
        void setMobile(String mobile);

        /**
         * 获取密码
         *
         * @return 密码
         */
        String getPassWord();

        /**
         * 设置密码
         *
         * @param passWord 登陆密码
         */
        void setPassWord(String passWord);

        /**
         * 获取验证码
         *
         * @return 验证码
         */
        String getCode();

        /**
         * 是否记住密码
         *
         * @return
         */
        boolean isSavePassword();




        /**
         * 设置发送验证码按钮是否可用
         *
         * @param enable 是否可用
         */
        void setCodeBtnEnable(boolean enable);

        /**
         * 设置发送验证码按钮文本内容
         *
         * @param msg
         */
        void setCodeBtnText(String msg);


        void goBindPhone(boolean isBindPhone);

        void goWxBindPhone(boolean isBindPhone, TreeUserEntity treeUserEntity);

    }

    public interface Presenter {

        /**
         * 初始化数据
         */
        void initData();

        /**
         * 登录
         */
        void login();

        /**
         * 发送验证码
         */
        void sendCode();

        /**
         * 微信登陆
         */
        void weChatLogin();

        void toLive(String c);
    }

    public interface Model {

        /**
         * 获取保存的手机号码
         *
         * @return 手机号码
         */
        String getSaveMobli();

        /**
         * 获取保存的密码
         *
         * @return 密码
         */
        String getSavePassword();

        /**
         * 登录
         *
         * @param mobile   手机号
         * @param password 密码
         * @param code     验证码
         * @param callBack 回调函数
         */
        void login(String mobile, String password, String code, ApiCallBack<TreeUserEntity> callBack);

        /**
         * 微信登陆
         */
        void weChatLogin(ApiCallBack<TreeUserEntity> callBack);

        /**
         * 登陆聊天服务器
         */
        void logIM();

        /**
         * 发送验证码
         *
         * @param type     类型
         * @param mobile   手机号
         * @param callBack 回调函数
         */
        void sendCode(int type, String mobile, ApiCallBack callBack);

        /**
         * 设置登录状态
         *
         * @param isLogin
         */
        void setLogin(boolean isLogin);

        /**
         * 保存用户数据
         *
         * @param data 用户数据
         */
        void saveUserInfo(TreeUserEntity data);

        /**
         * 记住密码
         *
         * @param mobile   手机号
         * @param password 密码
         */
        void savePassword(String mobile, String password);
    }


}